home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / magic / d / magicsys.d < prev    next >
Text File  |  1997-10-26  |  6KB  |  158 lines

  1. (*----------------------------------------------------------------------*
  2.  *                                                                      *
  3.  *         MAGIC   Modula's  All purpose  GEM  Interface  Cadre         *
  4.  *                 ÿ         ÿ            ÿ    ÿ          ÿ             *
  5.  *----------------------------------------------------------------------*
  6.  * Version 3.30  02.02.1992     (C)90/91/92 by Peter Hellinger Software *
  7.  *----------------------------------------------------------------------*
  8.  *            Dieses Modul ist urheberrechtlich geschtzt.              *
  9.  *                                                                      *
  10.  * Die Ver”ffentlichung des Quelltextes oder Teilen daraus in schrift-  *
  11.  * licher Form, insbesondere in Zeitschriften, sowie die Verbreitung    *
  12.  * ber Public-Domain-H„ndler bedarf der ausdrcklichen schriftlichen   *
  13.  * Genehmigung des Autors!                                              *
  14.  *                                                                      *
  15.  * Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jeder- *
  16.  * zeit auch im Quelltext weiterzugegeben, sofern dessen Text und ins-  *
  17.  * besondere dieser Urheberrechts-Vermerk nicht ver„ndert wird, und     *
  18.  * durch die Weitergabe kein finanzieller Nutzen entsteht. Der Autor    *
  19.  * beh„lt sich das Recht vor, diese Erlaubnis jederzeit u. ohne Angaben *
  20.  * von Grnden zu widerrufen.                                           *
  21.  *----------------------------------------------------------------------*)
  22.  
  23. (*----------------------------------------------------------------------*
  24.  * MagicSYS     Ein Versuch, abh„ngige Dinge zu vereinheitlichen        *
  25.  *----------------------------------------------------------------------*)
  26.  
  27. DEFINITION MODULE MagicSys;
  28.  
  29. IMPORT SYSTEM;
  30.  
  31.  
  32.  
  33.  
  34. (* eine besonders „rgerliche Sache: NIL ist nicht gleich NIL!  Bei einigen
  35.  * Systemen ist NIL als -1, bei anderen als 0 implementiert.
  36.  * MagicSys exportiert deshalb eine Konstante "Nil", die den Wert LONG(-1) 
  37.  * hat, und eine Konstante "Null", die gleich LONG(0) ist.
  38.  *
  39.  * Bitte informieren Sie sich, welche L”sung ihr System anbietet, bzw. 
  40.  * auch, welche Prozeduren NIL und welche NULL liefern.
  41.  *)
  42.  
  43.  
  44.  
  45.   CONST   Nil =   0FFFFFFFFH;  Null =  000000000H;  
  46.  
  47.  
  48. CONST   Bit0 =   0;
  49.         Bit1 =   1;
  50.         Bit2 =   2;
  51.         Bit3 =   3;
  52.         Bit4 =   4;
  53.         Bit5 =   5;
  54.         Bit6 =   6;
  55.         Bit7 =   7;
  56.         Bit8 =   8;
  57.         Bit9 =   9;
  58.         Bit10 = 10;
  59.         Bit11 = 11;
  60.         Bit12 = 12;
  61.         Bit13 = 13;
  62.         Bit14 = 14;
  63.         Bit15 = 15;
  64.  
  65. (* Nach dem neuen ISO-Standard wird es einen neuen Typ Namens LOC geben, der
  66.  * die kleinste adressierbare Speichereinheit darstellt.  Ein ARRAY OF WORD
  67.  * wird dann nach ISO ARRAY OF LOC heižen.  Der ARRAY OF WORD beruht im brigen
  68.  * auf einem Mižverst„ndniss, da auf der Lilith (der Rechner, auf dem Wirth 
  69.  * Modula-2 entwickelt hat) die kleinste adressierbare Einheit eben ein WORD ist.
  70.  * Bei den Rechnern der 68xxx Serie ist das aber anders.  Deshalb ist die 
  71.  * Entscheidung des ISO-Ausschusses durchaus vernnftig und gerechtfertigt.
  72.  *
  73.  * Mit Version 2.0 untersttzt auch MAGIC und alle davon abh„ngigen Bibliotheken
  74.  * dieses Konzept.
  75.  *)
  76.  
  77.  TYPE LOC = SYSTEM.LOC; 
  78.  
  79.  
  80. (* 8-Bit Typen *)
  81.  
  82. (* Es wird davon ausgegangen, daž ein CHAR auch nach ISO weiterhin 8 Bit
  83.  * grož ist, und somit keine Kompatibilit„tsprobleme auftreten.
  84.  *)
  85.  
  86. TYPE    Byte =          SYSTEM.BYTE;
  87.         ByteSet =       SET OF [0..7];
  88.  
  89. (* 16-Bit Typen *)
  90.  
  91. TYPE    sWORD =         SYSTEM.WORD;
  92.         sINTEGER =      INTEGER;
  93.         sCARDINAL =     CARDINAL;
  94.         sBITSET =       BITSET;
  95.  
  96.  
  97. (* 32-Bit Typen *)
  98. (* Achtung, LONGWORD und LONGBITSET gibts auf manchen Systemen nicht! *)
  99.  
  100. TYPE    lINTEGER =      LONGINT;
  101.         lCARDINAL =     LONGCARD;
  102.  
  103.  TYPE lWORD = SYSTEM.LONGWORD;  
  104.  
  105.  
  106.  
  107.                         
  108.  
  109.  TYPE lBITSET = SET OF [0..31];  
  110.  
  111.  
  112.  
  113.  
  114. (* Typ-Casting *)
  115.  
  116. PROCEDURE CastToChar    (REF  value: ARRAY OF LOC): CHAR;
  117. PROCEDURE CastToByte    (REF  value: ARRAY OF LOC): Byte;
  118. PROCEDURE CastToByteset (REF  value: ARRAY OF LOC): ByteSet;
  119. PROCEDURE CastToInt     (REF  value: ARRAY OF LOC): sINTEGER;
  120. PROCEDURE CastToCard    (REF  value: ARRAY OF LOC): sCARDINAL;
  121. PROCEDURE CastToBitset  (REF  value: ARRAY OF LOC): sBITSET;
  122. PROCEDURE CastToWord    (REF  value: ARRAY OF LOC): sWORD;
  123. PROCEDURE CastToLInt    (REF  value: ARRAY OF LOC): lINTEGER;
  124. PROCEDURE CastToLCard   (REF  value: ARRAY OF LOC): lCARDINAL;
  125. PROCEDURE CastToLBitset (REF  value: ARRAY OF LOC): lBITSET;
  126. PROCEDURE CastToLWord   (REF  value: ARRAY OF LOC): lWORD;
  127. PROCEDURE CastToAddr    (REF  value: ARRAY OF LOC): SYSTEM.ADDRESS;
  128. (* Casten jeden beliebigen Typ auf den Ergebnistyp *)
  129.  
  130. PROCEDURE Basepage (): SYSTEM.ADDRESS;
  131. (* liefert die Adresse der Basepage *)
  132.  
  133. PROCEDURE Accessory (): BOOLEAN;
  134. (* TRUE, wenn das Programm als ACC l„uft *)
  135.  
  136. PROCEDURE SysHeader (): SYSTEM.ADDRESS;
  137. (* liefert die Adresse des Systemheaders *)
  138.  
  139. PROCEDURE TosVersion (): sCARDINAL;
  140. (* liefert die Version des Betriebssystems *)
  141.  
  142. PROCEDURE TosDate (): sCARDINAL;
  143. (* liefert das Datum der Betriebssystemversion im GEMDOS-Format *)
  144.  
  145. PROCEDURE Terminate (return: sINTEGER);
  146. (* Bendet ein Programm *)
  147.  
  148. PROCEDURE CallGEM (function: sINTEGER; parablock: SYSTEM.ADDRESS);
  149. (* Ruft eine AES-Funktion auf *)
  150.  
  151. PROCEDURE VqGdos (): LONGCARD;
  152. (* Testet ob ein GDOS geladen ist *)
  153.  
  154.  
  155.  
  156. END MagicSys.
  157.  
  158.